/*******************************************************************************
* Copyright (c) 2006-2010 eBay Inc. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*******************************************************************************/
package org.ebayopensource.turmeric.policy.adminui.client.view.policy;
import org.ebayopensource.turmeric.policy.adminui.client.Display;
import org.ebayopensource.turmeric.policy.adminui.client.PolicyAdminUIUtil;
import org.ebayopensource.turmeric.policy.adminui.client.model.UserAction;
import org.ebayopensource.turmeric.policy.adminui.client.presenter.policy.PolicyImportPresenter.PolicyImportDisplay;
import org.ebayopensource.turmeric.policy.adminui.client.view.common.AbstractGenericView;
import org.ebayopensource.turmeric.policy.adminui.client.view.common.FileUploaderWidget;
import org.ebayopensource.turmeric.policy.adminui.client.view.common.PolicyTemplateDisplay.MenuDisplay;
import org.ebayopensource.turmeric.policy.adminui.client.view.common.TurmericStackPanel;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.ui.DockLayoutPanel;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* The Class PolicyImportView.
*/
public class PolicyImportView extends AbstractGenericView implements PolicyImportDisplay {
private final static UserAction SELECTED_ACTION = UserAction.POLICY_IMPORT;
private DockLayoutPanel mainPanel;
private MenuDisplay menuView;
private Display contentView;
private HasClickHandlers logoutComponent;
/**
* Instantiates a new policy import view.
*/
public PolicyImportView() {
mainPanel = new DockLayoutPanel(Unit.PX);
initWidget(mainPanel);
initialize();
}
/* (non-Javadoc)
* @see org.ebayopensource.turmeric.policy.adminui.client.view.common.AbstractGenericView#initialize()
*/
@Override
public void initialize() {
mainPanel.clear();
mainPanel.setWidth("100%");
mainPanel.add(initContentView());
}
/**
* Inits the content view.
*
* @return the widget
*/
protected Widget initContentView() {
ScrollPanel actionPanel = new ScrollPanel();
contentView = new ContentView();
actionPanel.add(contentView.asWidget());
return actionPanel;
}
private class ContentView extends AbstractGenericView implements Display {
private SimplePanel mainPanel;
private FormPanel form;
public ContentView() {
mainPanel = new SimplePanel();
mainPanel.setWidth("100%");
initWidget(mainPanel);
initialize();
}
public void activate() {
// do nothing for now
}
@Override
public void initialize() {
mainPanel.clear();
TurmericStackPanel panel = new TurmericStackPanel();
panel.setWidth("100%");
VerticalPanel vp = new VerticalPanel();
form = new FormPanel();
form.setEncoding(FormPanel.ENCODING_MULTIPART);
form.setMethod(FormPanel.METHOD_POST);
FileUploaderWidget.getFileUploaderWidget(form, PolicyAdminUIUtil.policyAdminConstants.policies());
panel.add(form,PolicyAdminUIUtil.policyAdminConstants.importPolicyAction());
vp.add(panel);
vp.add(new Label(PolicyAdminUIUtil.policyAdminConstants.importConditionalFileMsg()));
mainPanel.add(vp);
}
public FormPanel getForm() {
return form;
}
}
/* (non-Javadoc)
* @see org.ebayopensource.turmeric.policy.adminui.client.Display#activate()
*/
public void activate() {
contentView.activate();
this.setVisible(true);
}
/**
* Gets the menu view.
*
* @return the menu view
*/
public MenuDisplay getMenuView() {
return menuView;
}
/* (non-Javadoc)
* @see org.ebayopensource.turmeric.policy.adminui.client.view.common.PolicyTemplateDisplay.PolicyPageTemplateDisplay#getContentView()
*/
public Display getContentView() {
return contentView;
}
/**
* Gets the logout component.
*
* @return the logout component
*/
public HasClickHandlers getLogoutComponent() {
return logoutComponent;
}
/**
* Gets the action selected.
*
* @return the action selected
*/
public UserAction getActionSelected() {
return UserAction.POLICY_IMPORT;
}
/* (non-Javadoc)
* @see org.ebayopensource.turmeric.policy.adminui.client.presenter.policy.PolicyImportPresenter.PolicyImportDisplay#getForm()
*/
public FormPanel getForm() {
return ((ContentView)contentView).getForm();
}
}